package com.xunlai.infra.permission.business.service;

import com.xunlai.infra.permission.business.vo.poster.*;
import com.xunlai.infra.permission.common.exception.PermissionBusinessException;
import com.xunlai.infra.permission.common.vo.BasePageRespVo;

import java.util.List;

/**
 * @author liang
 * @date 8/7/23 9:51 PM
 */
public interface PosterService {

    Long createPosterTemplate(PosterTemplateCreateVo posterTemplateCreateVo);

    void updatePosterTemplate(Long id,PosterTemplateCreateVo posterTemplateCreateVo);

    void deletePosterTemplate(Long id);

    Long createPoster(PosterCreateVo posterCreateVo) throws PermissionBusinessException;

    void updatePoster(Long id,PosterCreateVo posterCreateVo);

    void deletePoster(Long id);

    Long createPosterFavorite(Long userId,PosterFavoriteCreateVo posterFavoriteCreateVo);
    void deletePosterFavorite(Long userId,Long posterId);

    Long createPosterType(PosterTypeCreateVo routeTypeCreateVo);

    BasePageRespVo<PosterTypeListVo> listPosterType(PosterTypeQueryVo routeTypeQueryVo, Integer pageNum, Integer pageSize);

    List<PosterTypeListVo> listAllPosterType();

    void updatePosterType(Long id, PosterTypeCreateVo routeTypeCreateVo);

    BasePageRespVo<PosterTemplateListVo> listPosterTemplate(Long userId,Long posterType,String posterName,Boolean favorite,Integer pageNum,Integer pageSize);

    BasePageRespVo<PosterListVo> listPoster(Long userId,Long posterType,String posterName,Integer pageNum,Integer pageSize);

    PosterTemplateVo getPosterTemplate(Long id);
    PosterDetailVo getPoster(Long id);
    PosterDetailVo getPosterByPosterNo(String posterNo);

}
